feat(packaging): add deb and rpm desktop targets#4069
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR adds new Linux packaging targets (deb/rpm), introducing new build capability. While the changes are well-tested packaging configuration rather than runtime code, new features adding capability warrant human review, especially from an author unfamiliar with this build infrastructure. You can customize Macroscope's approvability policy. Learn more. |
Dismissing prior approval to re-evaluate 03b684c
Install a t3 launcher in DEB and RPM artifacts that runs the bundled server through Electron's Node mode, while preserving t3code as the desktop command. Cover both package mappings and production/nightly install paths with tests.
Dismissing prior approval to re-evaluate bfd0201
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit bfd0201. Configure here.
Pin electron-builder's standard RPM requirements and add alsa-lib, libsecret, and mesa-libgbm so desktop and headless commands work on minimal installations without relying on weak dependencies.

What Changed
Added additional outputs to packaging script.
Why
Allows output of 2 linux packaging systems Deb and RPM
issue #4030
Checklist
Note
Low Risk
Packaging-only changes to the desktop artifact script with new tests; no runtime app logic, auth, or data handling.
Overview
Adds Linux
.deband.rpmdesktop packaging alongside the existing AppImage flow, with newdist:desktop:debanddist:desktop:rpmscripts that write artifacts topackaging-output/.The desktop build script now stages a
/usr/bin/t3headless CLI for deb/rpm viarenderLinuxHeadlessLauncher(Electron as Node → serverbin.mjs), maps it with electron-builderfpm, and sets distro-specific runtime deps plus Linux package metadata (maintainer, vendor, synopsis,syncDesktopName). Stagedpackage.jsonfields are expanded for packagers (homepage,license,desktopName, richer description/author). Tests cover deb/rpm config and launcher output for production vs nightly product names.Reviewed by Cursor Bugbot for commit ab03901. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add DEB and RPM desktop build targets for Linux packaging
dist:desktop:debanddist:desktop:rpmnpm scripts in package.json that invoke scripts/build-desktop-artifact.ts with the appropriate Linux target and output topackaging-output/.DEB_DEPENDENCIES,RPM_DEPENDENCIES) and enriched package metadata (maintainer, vendor, synopsis, homepage, license).renderLinuxHeadlessLauncherfunction that generates a POSIX shell script settingELECTRON_RUN_AS_NODE=1and executing the desktop binary; this script is installed to/usr/bin/t3in DEB/RPM packages.quotePosixShellArgumentutility to safely quote shell arguments used in the launcher script.Macroscope summarized ab03901.